草庐IT

c++ - XML Schema 到 C++ 类

全部标签

c++ - 编译器编程 : What are the most fundamental ingredients?

我有兴趣编写一个非常简约的编译器。我想编写一个满足以下条件的小软件(用C/C++):以ELF格式输出(*nix)输入是一个文本文件类C语法和句法没有链接器没有预处理器非常小(最多1-2KLOC)语言特点:原生数据类型:char、int和float数组(适用于所有native数据类型)变量控制结构(if-else)职能循环(会很好)简单的代数(div、add、sub、mul、bool表达式、位移等)内联汇编(用于系统调用)谁能告诉我如何开始?我不知道编译器由哪些部分组成(至少在我可以立即开始的意义上)以及如何对它们进行编程。谢谢你的想法。 最佳答案

c++ - C 中的运算符重载

在C++中,我可以通过执行以下操作来更改特定类的运算符:MyClass::operator==/*Orsomeotheroperatorsuchas=,>,etc.*/(ConstMyClassrhs){/*DoStuff*/;}但是在C中没有类(默认情况下内置)。那么,我如何才能仅对一般函数进行运算符重载?例如,如果我没记错的话,导入stdlib.h会为您提供->运算符,它只是(*strcut_name).struct_element的语法糖。那么我如何在C中执行此操作?谢谢。 最佳答案 普通的旧C没有任何形式的运算符重载。->访

c++ - 为什么 C/C++ 中的函数体放在单独的源代码文件中而不是头文件中?

例如,当我在C++中定义一个类文件时,我总是将函数体与类定义一起放在类头文件(.h)中。源代码文件(.cpp)是带有main()函数的文件。现在这通常在proc++程序员中完成,还是他们遵循单独的头文件/源代码文件的约定。至于原生C,我确实注意到然后在GCC中完成(当然还有VisualStudioforWindows中的header)。这只是约定俗成吗?或者这是有原因的吗? 最佳答案 函数体被放入.cpp文件中实现如下:让编译器只解析和编译它们一次,而不是强制它在头文件包含的任何地方一次又一次地编译它们。此外,在header实现的情

c++ - 比较两个 C 风格字符串的正确函数是什么?

所以我进退两难。我需要比较两个C风格的字符串并搜索最合适的函数:memcmp//Comparetwoblocksofmemory(function)strcmp//Comparetwostrings(function)strcoll//Comparetwostringsusinglocale(function)strncmp//Comparecharactersoftwostrings(function)strxfrm//Transformstringusinglocale(function)第一个我觉得是地址,所以思路就out了。第二个对我来说听起来是最好的选择,但我还是想听听反馈。

ios - Xcode 8 更新后,通过桥接 header 的 .c 文件不起作用

我一直在开发的应用程序使用外部库pdlib,它有自己的外部文件(.c文件),我一直通过桥接header#import"Uzi.c"并在我的ViewController类中通过Uzi.c的设置函数Uzi_setup()调用我的主Swift文件。在几天前更新到新的公共(public)Xcode8之前,我对此没有任何问题(我在夏季使用Xcode8Beta1没有问题)。这是我得到的7个错误,列在一个“Mach-O链接器错误”的总括之下:Undefinedsymbolsforarchitecturex86_64:"_Uzi_bang",referencedfrom:_Uzi_setupinVie

ios - 在回调函数中调用 Objective-C 方法

这个问题在这里已经有了答案:Howtopassobjective-cfunctionasacallbacktoCfunction?(2个答案)关闭8年前。我一直在使用Dragonmobilesdk和AudioSoundSystem,尝试进行语音识别->文本到语音链。这是我的代码:(这里有语音识别部分)-(void)recognizer:(SKRecognizer*)recognizerdidFinishWithResults:{...SystemSoundIDid=[selfplaySound:url2];//playSoundAudioServicesAddSystemSoundCo

ios - 如何使 Obj-C 库全局重命名(每个类/导出的符号)?

在一个大型开源项目中,我们遇到了这个问题,所以这是一个很好的案例研究/示例:我们的库实现了SVG规范SVG规范定义为“包括”DOM和CSS规范DOM规范需要DOM实现,但Apple拒绝在iOS上共享他们的DOM实现我们不得不在ObjectiveC中重新实现DOM,这样我们才能正确实现SVG但Apple不小心/故意将一些类放在全局命名空间中,这些类使用了DOM中的保留名称。任何人都不可能用这些名字创建一个新类我们目前的解决方法:我们将受影响的类重命名为例如“名称”为“AppleHasConflictedThisInGlobalNameSpaceName”。是的,这不是最礼貌的消息,但它向

Exception java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema [in thread “Daemon wor

详细错误Exceptionjava.lang.NoClassDefFoundError:javax/xml/bind/annotation/XmlSchema[inthread"Daemonworker"]下载JDK1.8JavaDownloads|Oracle设置

c++ - iPad/X 平台上的 OpenGL ES 应用 : C++ or Objective-C?

我希望这有一个技术(而不是宗教)答案,但我想知道我是否应该使用Objective-C或C++在iPad上创建OpenGLES应用程序?由于最终目标是在Windows和OSX上编译它,我倾向于使用C++(并且只使用ObjC来处理我必须做的事情:AppDelegate等),但我有零具有Objective-C开发经验。我可以与Objective-C中的C++类交互吗?使用ObjC而不是C++有什么令人信服的理由吗?或者我应该只使用普通的旧C语言吗? 最佳答案 您可以,它称为Objective-C++,您需要做的就是确保您的源文件具有.mm

ios - 如何在头文件中声明一个 C 数组?

我有一个CGPoint的C数组,我想在头文件.h中声明它。CGPointcheckPoint[8];但是当我尝试在.m中给它一个值时:checkPoint[8]={//它给我一个指向第一个左括号的错误:预期的表达式我不太习惯使用C数组,正确的做法是什么?编辑我已经尝试在头文件中使用extern,但我收到此错误消息:Typenamedoesnotallowstorageclasstobespecified. 最佳答案 您需要在header中的声明中添加extern:externCGPointcheckPoint[8];这将使它成为声明